iOS字符串编码与解码方法的实现与调用(UrlEncode/UrlDecode) |
您所在的位置:网站首页 › 快捷指令 编码 解码 › iOS字符串编码与解码方法的实现与调用(UrlEncode/UrlDecode) |
1.本编解码方法的功能说明 UrlEncode方法
把任何参数转换成适合放在URL中的字符串。具体规则: 字母,数字,连字符不变。空格转换成加号。其他所有的字符转换成用百分号表示,并接上字符的两位十六进制编码。如%2F UrlDecode方法 其功能与编码相反2. 字符串在编码之前之后的效果 原字符串: Vk/nQmguwJIN编码之后: Vk%2FnQmguwJIN解码之后: Vk/nQmguwJIN3.UrlEncode/UrlDecode方法的实现编码 +(NSString*)encodeString:(NSString*)unencodedString{ // CharactersToBeEscaped = @":/?&=;+!@#$()~',*"; // CharactersToLeaveUnescaped = @"[]."; NSString *encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)unencodedString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)); return encodedString; }解码 //URLDEcode +(NSString *)decodeString:(NSString*)encodedString { //NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]; NSString *decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,(__bridge CFStringRef)encodedString,CFSTR(""),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); return decodedString; }4.使用建议建议自己写个Category。比如,可以基于NSString新建一个URLEncoding类别文件,类名分别为NSString+URLEncoding.h和NSString+URLEncoding.m。然后,在你需要的地方导入该头文件即可。作为对比,与上面的实现不同,下面采用replaceOccurrencesOfString:方法实现解码功能。 其中: NSString+URLEncoding.h #import @interface NSString (URLEncoding) // 字符串转码 - (NSString*)urlEncodeString; // 反URL编码 - (NSString *)decodeFromPercentEscapeString; @endNSString+URLEncoding.m #import "NSString+URLEncoding.h" @implementation NSString (URLEncoding) // 字符串编码 - (NSString *)urlEncodeString { NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’(){}*+,;="),kCFStringEncodingUTF8)); return result; } // 反URL编码 - (NSString *)decodeFromPercentEscapeString { NSMutableString *outputStr = [NSMutableString stringWithString:self]; [outputStr replaceOccurrencesOfString:@"+" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [outputStr length])]; return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; }5. 调用范例在调用处的类中 #import "NSString+URLEncoding.h"然后,调用上述方法: [testStr urlEncodeString];即可。 参考文献http://blog.csdn.net/qwerty123501029/article/details/7092077http://blog.csdn.net/typingios/article/details/9136005http://blog.csdn.net/bianhuanshizhe/article/details/46953155 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |